"""
推导的算法比较复杂，用列表生成式for循环无法实现的时候可以选择函数生成生成器

函数时按顺序执行，通过return语句或者最后一行函数语句就返回
"""
# 函数是按顺序执行，通过return语句或者最后一行函数语句就返回
# 如果想将一个函数变为生成器函数，只需将函数的return变为yield
# 变成generator函数，在每次调用next（）的时候，遇到yield语句返回，如果
# 再次执行next()，会从上次返回yield语句处继续执行
def func():
    yield 0
    print("lifeibiao is a goo man")
    yield 1
    print("lifeibiao is a cool man")
    yield 2
    print("lifeibiao is a nice man")
 #   return 10
    yield 3
res = func()
print(res)
print(type(res))

print(next(res))
print(next(res))
print(next(res))
print(next(res))
# 遇到yield中断，再继续执行没有yield会报错
# print(next(res))


# ret = next(res)
# print(ret)
# ret = next(res)
# print(ret)
# ret = next(res)
# print(ret)